#define _CRT_SECURE_NO_WARNING
#include <stdio.h>
#include<string.h>

//指针的作用就是访问内存的
 //                     指针+-整数
int main()//一般形式打印数组
{
	int arr[10] = {1,2,3,4,5,6,7,8,9,10 };
	int i = 0;
	int sz = sizeof(arr) / sizeof( arr[0]);
	for (int i = 0; i < sz; i++)
	{
		printf("%d\n", arr[i]);
	}
	return 0;
}
int main()//指针方式打印数组
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int i = 0;
	int* p = &arr[0];	
	int sz = sizeof(arr) / sizeof(arr[0]);
	for (i = 0; i < sz; i++)
	{
		printf("%d\n", *p);
		p++;
	}

	return 0;
}	
int main()//指针方式打印数组
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int i = 0;
	int* p = &arr[0];
	int sz = sizeof(arr) / sizeof(arr[0]);
	for (i = 0; i < sz; i++)
	{
		printf("%d\n", *(p + i));
		
	}

	return 0;
}

//                指针-（减）减指针=两个指针之间的元素的个数
//例如：
int main()
{
	int arr[10] = { 0 };
	int ret = &arr[9] - &arr[0];
	printf("%d\n", ret);

	return 0;
}
int main()
{
	char arr[10] = { 0 };
	int arr[10] = { 0 };
	int ret = &char[9] - &arr[0];//注意这种情况是不允许的
	printf("%d\n", ret);

	return 0;
}

//打印字符串的长度
int main()
{
	char  arr[10] = "abcdef";
	int len =strlen(arr);//strlen求的是\n前字符个数
	printf("%d\n", len);

	return 0;
 }
 
int my_strlen(char* str)
{
	int count = 0;
	while (*str != '\0')//识别*str是否='\n';
	{
		count++;
		*str++;
	}
	return  count;
}
int main()
{
	char  arr[10] = "abcdef";
	int len = my_strlen(arr);
	//[a b c d e f \n]
	//数组名arr是数组首元素的地址arr=&arr[0].
	printf("%d\n", len);

	return 0;
}
int my_strlen(char* str)
{
	char* start = str;
	while (*str != '\0')
		str++;
	return str - start;//指针-指针
}
int main()
{
	char  arr[10] = "abcdef";
	int len = my_strlen(arr);
	//[a b c d e f \n]
	//数组名arr是数组首元素的地址arr=&arr[0].
	printf("%d\n", len);

	return 0;
}
